A virtual machine is a software implementation of a physical computer that, like an actual physical computer, runs an operating system (sometimes referred to as guest operating system, guest OS) and applications. Each virtual machine has access to virtual, or software-based, hardware, including a virtual CPU, memory, hard disk, and network interface card. Software called the hypervisor is installed on the physical hardware in a virtualized system, and acts as a platform for virtual machines.
The hypervisor provides a platform for running virtual machines and allows for the consolidation of the platform's physical computing resources. The hypervisor provides software representations of physical hardware resources dynamically to virtual machines as needed to support operation of the virtual machines. The hypervisor allows virtual machines to operate with a degree of independence from the underlying physical hardware. For example, a virtual machine can be moved from one physical host to another (sometimes referred to a virtual machine migration) or its virtual disks can be moved from one type of storage to another (sometimes referred to as virtual storage migration), without affecting the functioning of the virtual machine.
The hypervisor manages its physical memory (sometimes referred to as host physical memory) so that each virtual machine can transparently access the “physical” memory the virtual machine is configured with (sometimes referred to as guest physical memory). Since the physical host machine on which the hypervisor runs has limited physical memory, the hypervisor can be challenged when the total memory consumption of deployed virtual machines exceeds the capacity of physical memory.